home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 145
/
Gekkan Dennou Club - 2000.6 Vol. 145 (Japan).7z
/
Gekkan Dennou Club - 2000.6 Vol. 145 (Japan) (Track 1).bin
/
tools
/
sharp
/
sxwork3.lzh
/
サンプル実用編
/
ペイント
/
GPAINT.H
< prev
next >
Wrap
Text File
|
1994-03-10
|
9KB
|
259 lines
/******************************************************************************
* gpaint.h: グラフィックペイント用ヘッダファイル
******************************************************************************
* Workroom SX-68K Sample Program Copyright 1994 SHARP
*
* 定数定義
*/
/* ウィンドウタイトル */
#define WINTITLE "ペイント"
/* ウィンドウサイズ */
#define WIN_H 480 /* ウィンドウの幅 */
#define WIN_V 256 /* ウィンドウの高さ */
/* 数値調整ボタンのリピート時間(1/100秒単位)*/
#define ADJFIRST 40 /* リピート開始時間 */
#define ADJNEXT 12 /* リピート間隔 */
#define COLOR 0 /* カラー選択ウィンドウ */
#define PALET 1 /* パレット設定ウィンドウ */
#define TOOL 2 /* ツール選択ウィンドウ */
#define LUPE 3 /* ルーペウィンドウ */
#define SUBMAX 4
#define TOOLMAX 5
/* イベントマスク */
#define EVENTMASK (EM_MSLDOWN | EM_UPDATE | EM_ACTIVATE | EM_SYSTEM1 | EM_SYSTEM2)
/*
* 構造体宣言
*/
typedef struct ComVal { /* 共通変数 */
Window *windowPtr; /* ウィンドウポインタ */
BOOLEAN activeFlag; /* アクティブフラグ */
TsEvent event; /* イベントレコード */
int eventMask; /* イベントマスク */
int errorCode; /* エラーコード */
BOOLEAN endFlag; /* 終了フラグ */
int argc; /* コマンドライン引数の個数 */
char **argv; /* コマンドライン引数 */
Rect nowWinSize; /* 現在のウィンドウサイズ */
Rect pictSize; /* 絵のサイズ */
/* 疑似ダイアログで入力された絵のサイズ */
Point ptPicXY;
char fileName[TS_NAMEMAX]; /* ファイル名 */
int fileMode; /* ファイル入出力モード */
int sizeDlg; /* サイズ変更疑似ダイアログON/OFF */
BOOLEAN editFlag; /* 編集フラグ */
/* ファイル名用テキストエディットハンドル */
TEdit **fTEditHdl;
/* 文字入力用テキストエディットハンドル */
TEdit **mTEditHdl;
Subwin *subwinPtr[SUBMAX]; /* サブウィンドウポインタ */
Region **subRgnHdl[SUBMAX]; /* サブウィンドウのリージョンハンドル */
/* スライドボリュームのコントロールハンドル R:[0]、G:[1]、B:[2] */
Control **RGBSlvHdl[3];
/* 数値調整ボタンのコントロールハンドル R:[0]、G:[1]、B:[2] */
Control **RGBBtnHdl[3];
/* パレット設定ウィンドウの[設定]ボタンのコントロールハンドル */
Control **setBtnHdl;
/* パレット設定ウィンドウの[取消]ボタンのコントロールハンドル */
Control **canBtnHdl;
/* ツール選択ウィンドウのスライドボリュームのコントロールハンドル */
Control **slvHHdl;
/* ツール選択ウィンドウのスライドボリュームのコントロールハンドル */
Control **slvVHdl;
/* 疑似ダイアログの[設定]/[実行]ボタンのコントロールハンドル */
Control **eSetBtnHdl;
/* 疑似ダイアログの[取消]ボタンのコントロールハンドル */
Control **eCanBtnHdl;
/* 数値調整ボタンのコントロールハンドル X:[0]、Y:[1] */
Control **adjBtnHdl[2];
/* スライドボリュームのコントロールハンドル X:[0]、Y:[1] */
Control **eSlvHdl[2];
Handle resMap; /* リソースマップのハンドル */
RectImg **eraserImg; /* 消しゴム用ビットイメージ */
RectImg **penImg[8]; /* ペンパターン用ビットイメージ */
RectImg **tileImg[12]; /* タイルパターン用ビットイメージ */
RectImg **tlBtnImg[21]; /* ツールボタン用ビットイメージ */
RectImg **plBtnImg[3]; /* パレットボタン用ビットイメージ */
MsCsr **mousePtn; /* マウスポインタのパターン */
Graph offGraph; /* オフスクリーン用グラフレコード */
Bits **offBitsHdl[2]; /* オフスクリーン用ビッツハンドル */
/* オフスクリーン用グラフ作成完了フラグ */
BOOLEAN offGraphOK;
Graph wkGraph; /* ワーク用グラフレコード */
Bits **wkBitsHdl; /* ワーク用ビッツハンドル */
BOOLEAN wkGraphOK; /* ワーク用グラフ作成完了フラグ */
unsigned long clickTime; /* マウス左ボタンのクリック時刻 */
int paletNo; /* パレット番号 */
int toolKind; /* 現在使用中のツールの種類(0-7) */
/* 各ツールに対して選択されているモードボタンの状態(図形、ブラシ、
倍率等)[4] のルーペのみ上位16ビットがツール、下位16ビットが倍率 */
int toolStat[8];
/* ルーペのサブアイコンの表示状態 0:倍率、1:ツール */
short lupeStat;
Point penSize; /* 描画ペンサイズ */
Point brushSize; /* 描画ブラシサイズ */
Point radius; /* ラウンドレクタングルの半径 */
int ptrnNo; /* ペンパターン番号 */
/* ペンパターンのフォア/バックグラウンドカラー切り替えフラグ */
int foreBack;
/* ペンパターンのフォアグラウンドカラー(0)、バックグラウンドカラー(1) */
int ptrnColor[3];
BOOLEAN ptrnUse; /* ペンパターン使用フラグ */
int paletBuf[16]; /* パレットデータ(設定後) */
int oldPaletBuf[16]; /* パレットデータ(設定前) */
/* 文字ボタン([設定]/[取消])使用不可フラグ */
BOOLEAN disableBtn;
short lupeRate; /* 拡大比率 0:×4 1:×8 */
int lupeTool; /* ルーペ使用前のツールの保存 */
BOOLEAN moveLock; /* ルーペの拡大範囲の移動禁止フラグ */
Rect rcLupe; /* 拡大範囲のレクタングル */
BOOLEAN undoFlag; /* UNDOのオンオフ */
/* オフスクリーン用ビッツのインデックス(UNDO使用時に入れ換え) */
unsigned short offIdx;
BitImg brushImg[16]; /* 選択中ブラシのビットイメージ */
} ComVal;
/*
* 外部変数宣言
*/
extern int OldFC;
extern int OldBC;
extern int OldPM;
extern Point OldPS;
extern int OldFM;
extern int PaletOrg[16];
extern Rect pb1size;
extern Rect brrect; /* ブラシ用レクタングル */
/* ファイルネーム入出力用疑似ダイアログレクタングル */
extern Rect rcFdlg;
/* ファイル入出力用疑似ダイアログのビューレクタングル */
extern Rect rcView;
/*
* 関数プロトタイプ
*/
/* gpmain.c */
BOOLEAN init(ComVal *);
void initVal(ComVal *);
BOOLEAN createWindow(ComVal *);
void idleEvent(ComVal *);
void msLDownEvent(ComVal *);
void msRDownEvent(ComVal *);
void selectMenu(ComVal *);
void keyDownEvent(ComVal *);
void updateEvent(ComVal *);
void drawGraph(ComVal *);
void activateEvent(ComVal *);
void systemEvent(ComVal *);
void dropIcon(ComVal *);
void showErrDialog(ComVal *);
void endProc(int, ComVal *);
void setGraph(Window *, int);
void repeatAdjBtn(ComVal *, Window *, Control **, Control **, int, int);
void addUpdate(Window *, Rect *);
/* gpaint.c */
void paintFig(ComVal *, LPoint);
void drawFig(ComVal *, Rect *);
void paintRgn(ComVal *, LPoint);
BOOLEAN makeRgn(ComVal *, Point *, int, Rect *);
void paintPen(ComVal *, LPoint);
void paintOfDomain(ComVal *, LPoint);
void paintBrush(ComVal *, LPoint);
void brushing(ComVal *, Region **, Point *, Point *, Point *);
void dispEseDlg(ComVal *, int);
void newPicture(ComVal *);
void saveDataForUndo(ComVal *);
void execUndo(ComVal *);
/* gpsubwin.c */
BOOLEAN createSubwin(ComVal *);
BOOLEAN openSubwin(ComVal *, int);
BOOLEAN createSubControl(ComVal *, int);
void msLDownSubwin(ComVal *, int);
BOOLEAN checkPctBtn(ComVal *, Rect *, LPoint, int);
void revFillRect(Rect *);
void revFrameRect(Rect *);
BOOLEAN dragSubwin(ComVal *, Rect *, LPoint, LPoint, int);
void drawSubwin(ComVal *, int);
void drawSubTitleBar(ComVal *, int);
void dispSubwin(ComVal *, BOOLEAN);
void disposeSubwin(ComVal *, int);
/* gpcolor.c */
void colorMsLDown(ComVal *);
void drawColorWnd(ComVal *);
void drawPenPtnImg(ComVal *);
void drawFBBtn(ComVal *);
int selectPalet(ComVal *, int *);
void changePalet(ComVal *, int, int);
void calcColorPctBtn(int, Rect *);
void calcTilePctBtn(int, Rect *);
void calcFBPctBtn(int, Rect *);
/* gppalet.c */
void paletMsLDown(ComVal *);
void drawPaletWnd(ComVal *);
void drawPaletCtrl(ComVal *);
void setPalet(int *);
/* gptool.c */
void toolMsLDown(ComVal *);
void drawToolWnd(ComVal *);
void drawToolCtrl(ComVal *);
void drawNowImg(ComVal *);
int selectTool(ComVal *, int *);
void calcToolPctBtn(int, Rect *);
void changeTool(ComVal *, int);
void changeToolSubBtn(ComVal *, int);
void drawToolSubBtn(ComVal *, int);
/* gplupe.c */
void moveLupeRect(ComVal *, LPoint);
void dispLupeRect(ComVal *);
void lupeMsLDown(ComVal *);
void paintLupePen(ComVal *);
void paintLupeOfDomain(ComVal *);
void drawLupeWnd(ComVal *);
void drawLupeSubIcon(ComVal *);
void drawLupeRect(ComVal *);
void changeLupeRate(ComVal *, int);
/* gpfile.c */
void checkFileDlg(ComVal *, LPoint);
void execFileDlg(ComVal *, int);
void loadFile(ComVal *, char *);
BOOLEAN readFile(ComVal *, FILE *, Bits ***);
void saveFile(ComVal *, char *);
BOOLEAN loadResource(ComVal *);
BOOLEAN getResIdn(int, int, int, _Handle *);
BOOLEAN checkDrive(char *, int, int);
/* gpsub.c */
BOOLEAN createOffScreen(ComVal *);
BOOLEAN preperaFInOut(ComVal *);
BOOLEAN createSizeSetCtrl(ComVal *);
void checkSizeDlg(ComVal *);
void changePicSize(ComVal *, BOOLEAN);
void clearEseDlg(ComVal *);
void makeRect(LPoint, LPoint, Rect *, Rect *);
void ajustPoint(Point *, Point *, Rect *);
void ajustEndPoint(LPoint, Point *, Rect *);
void setFBColor(ComVal *);
void changeWinSize(ComVal *, Rect *);
void allUpdate(ComVal *);
void plusRectImg(RectImg **, RectImg **, LPoint, LPoint, int);
void makeBitmap(RectImg *, Bitmap *, int, short);
void changeUndo(ComVal *);